---
order: 1
title: 动画复用
type: 动画
group: 指南和示例
label: Animation/Examples
---

本示例展示了如何在 Galacean 编辑器中播放其他模型的动画。通过简单的步骤，你将学习如何让一个模型复用另一个模型的动画。这个指南适合初学者了解 Galacean 编辑器的动画系统，也为更复杂的动画应用奠定基础。
如果你是第一次使用动画编辑器，建议先阅读这篇文档：

[播放模型中的动画](/docs/animation/examples/playAnimation/)

## 0. 准备工作

在开始之前，我们需要有一个没有动画的模型，和一个只有动画的模型（角色模型必须包含与动画模型同名的实体）。如果你没有模型，可以在 [mixamo](https://www.mixamo.com/#/?page=1&query=&type=Character) 上下载一个。

### 下载模型

1. 在 [mixamo](https://www.mixamo.com/#/?page=1&query=&type=Character) 中选择一个模型

<Image src="https://mdn.alipayobjects.com/huamei_3zduhr/afts/img/A*UF2BTbu598EAAAAAAAAAAAAADsJ_AQ/original" /> 

直接点击下载
<Image src="https://mdn.alipayobjects.com/huamei_3zduhr/afts/img/A*m9xuR4QewBEAAAAAAAAAAAAADsJ_AQ/original" />

2. 在 [动画Tab](https://www.mixamo.com/#/?page=1&query=&type=Motion%2CMotionPack) 中选择一个动画

<Image src="https://mdn.alipayobjects.com/huamei_3zduhr/afts/img/A*P_e2Q4D9AN4AAAAAAAAAAAAADsJ_AQ/original" /> 

选择 `Without Skin` 选项，然后点击下载
<Image src="https://mdn.alipayobjects.com/huamei_3zduhr/afts/img/A*ktbtQrG9rNEAAAAAAAAAAAAADsJ_AQ/original" />

<Callout type="positive">
  在实际项目中强烈建议将FBX模型通过Blender等第三方工具转换为GLB/GLTF格式。Galacean目前仅支持解析GLB/GLTF模型。虽然可以直接将FBX拖入编辑器进行自动转换，但这种方式可能会导致转换后的模型动画数据过大，并可能出现还原问题。使用专业工具进行转换可以更好地控制转换质量和文件大小。
</Callout>

### 导入模型
如果你不知道如何导入模型，请参考：[导入模型](/docs/animation/examples/playAnimation/#导入模型)

将角色模型和动画模型导入到编辑器中。  
<Image src="https://mdn.alipayobjects.com/huamei_3zduhr/afts/img/A*xApDR4D-Ed0AAAAAAAAAAAAADsJ_AQ/original" />


## 1. 创建动画控制资产
想要播放其他模型的动画，需要编辑 `动画控制器` 的内容，而模型中的 `动画控制器` 是只读的，所以需要我们自己创建一个 `动画控制器` 。
如果你不知道如何创建` 动画控制器` ，请参考：[创建动画控制器](/docs/animation/examples/playAnimation/#2-创建动画控制资产)

## 2. 编辑动画控制器

1. 双击 [动画控制器](/docs/animation/animatorController/) 资产，进入动画控制器编辑器（编辑器的各个功能介绍请参考 [动画控制器编辑器](/docs/animation/animatorController/) 文档）

<Image src="https://mdn.alipayobjects.com/huamei_3zduhr/afts/img/A*v8aUR4McTA4AAAAAAAAAAAAADsJ_AQ/original" /> 

2. 点击 `添加动画状态` 按钮，添加一个 `动画状态`

<Image src="https://mdn.alipayobjects.com/huamei_3zduhr/afts/img/A*G1moSpo20KcAAAAAAAAAAAAADsJ_AQ/original" /> 

3. 点击 `动画状态`（动画状态的属性介绍请参考 [动画状态](/docs/animation/animatorState/) 文档），绑定动画模型中的 `动画片段` 。 

<Image src="https://mdn.alipayobjects.com/huamei_3zduhr/afts/img/A*72LhQ5gOBmgAAAAAAAAAAAAADsJ_AQ/original" />

4. 从 `entry` 连接到此 `动画状态` 并点击连线将 `Duration` 改为 0（动画状态及动画过渡的详细介绍请参考 [动画状态机](/docs/animation/state-machine/) 文档），这样在这个动画控制器被应用时，就会立即自动播放此 `动画状态` 。

<Image src="https://mdn.alipayobjects.com/huamei_3zduhr/afts/img/A*wgBgQor0c5wAAAAAAAAAAAAADsJ_AQ/original" />
<Image src="https://mdn.alipayobjects.com/huamei_3zduhr/afts/img/A*NgW5QZ4vaFEAAAAAAAAAAAAADsJ_AQ/original" />

## 3. 使用动画控制器并预览

1. 将模型拖入到场景中

<Image src="https://mdn.alipayobjects.com/huamei_3zduhr/afts/img/A*uEGPTZfKEZwAAAAAAAAAAAAADsJ_AQ/original" />

2. 与直接播放模型中的动画不同，我们需要找到动画模型的 `动画控制组件`（[详细介绍](/docs/animation/animator/)）位置, 组件一般在模型实例的根实体上，也就是编辑器的模型实体下的第一个子实体上，因此我们需要将包含动画的模型也拖到节点树中

<Image src="https://mdn.alipayobjects.com/huamei_3zduhr/afts/img/A*kjmDSZeyq4QAAAAAAAAAAAAADsJ_AQ/original" />

我们发现 `动画控制组件` 在动画模型的 `mixamorig:Hips` 实体上，因此我们需要在角色模型的`mixamorig:Hips`实体上添加 `动画控制组件`

<Image src="https://mdn.alipayobjects.com/huamei_3zduhr/afts/img/A*HCzWTrsp1isAAAAAAAAAAAAADsJ_AQ/original" />


3. 在动画控制器属性上替换为刚才创建的`动画控制器`

<Image src="https://mdn.alipayobjects.com/huamei_3zduhr/afts/img/A*dFGgRqk0tvgAAAAAAAAAAAAADsJ_AQ/original" />

4. 点击播放按钮，就可以看到模型开始播放动画了

<Image src="https://mdn.alipayobjects.com/huamei_3zduhr/afts/img/A*EeXDQp4PVRkAAAAAAAAAAAAADsJ_AQ/original" /> 

